// package com.ai.study.dashscope.controller.rag.redis;
//
// import io.swagger.v3.oas.annotations.tags.Tag;
// import org.slf4j.Logger;
// import org.slf4j.LoggerFactory;
// import org.springframework.ai.document.Document;
// import org.springframework.ai.vectorstore.SearchRequest;
// import org.springframework.ai.vectorstore.VectorStore;
// import org.springframework.ai.vectorstore.filter.Filter;
// import org.springframework.ai.vectorstore.filter.FilterExpressionBuilder;
// import org.springframework.ai.vectorstore.redis.RedisVectorStore;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.beans.factory.annotation.Qualifier;
// import org.springframework.web.bind.annotation.GetMapping;
// import org.springframework.web.bind.annotation.RequestMapping;
// import org.springframework.web.bind.annotation.RestController;
//
// import java.util.HashMap;
// import java.util.List;
// import java.util.Map;
//
// @RestController
// @RequestMapping("/redis")
// @Tag(name = "redis 向量数据库 测试")
// public class RagRedisController {
//
//     private static final Logger logger = LoggerFactory.getLogger(RagRedisController.class);
//     private final VectorStore redisVectorStore;
//
//     public RagRedisController(@Qualifier("redisVectorStore") RedisVectorStore redisVectorStore) {
//         this.redisVectorStore = redisVectorStore;
//     }
//
//     @GetMapping("/import")
//     public void importData() {
//         logger.info("start import data");
//
//         HashMap<String, Object> map = new HashMap<>();
//         map.put("id", "12345");
//         map.put("year", "2025");
//         map.put("name", "yingzi");
//         List<Document> documents = List.of(
//                 new Document("The World is Big and Salvation Lurks Around the Corner"),
//                 new Document("You walk forward facing the past and you turn back toward the future.", Map.of("year", 2024)),
//                 new Document("Spring AI rocks!! Spring AI rocks!! Spring AI rocks!! Spring AI rocks!! Spring AI rocks!!", map));
//         redisVectorStore.add(documents);
//     }
//
//     // todo 暂未生效
//     @GetMapping("/search")
//     public List<Document> search() {
//         logger.info("start search data");
//         return redisVectorStore.similaritySearch(SearchRequest
//                 .builder()
//                 .query("Spring")
//                 .topK(2)
//                 .build());
//     }
//
//     // todo 暂未生效
//     @GetMapping("delete-filter")
//     public void searchFilter() {
//         logger.info("start delete data with filter");
//         FilterExpressionBuilder b = new FilterExpressionBuilder();
//         Filter.Expression expression = b.eq("name", "yingzi").build();
//
//         redisVectorStore.delete(expression);
//     }
// }
